using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SmartLink.EnumLibrary
{
    /// <summary>
    /// 系统模块（存储使用常量字符串）
    /// </summary>
    public enum ModuleCodeEnum
    {
        #region 首页
        /// <summary> 
        /// 首页  
        /// </summary>
        [Description("首页")]
        IndexPage,
        /// <summary> 
        /// 工作台 
        /// </summary> 
        [Description("工作台")]
        Workbench,
        /// <summary> 
        /// 工作台1  
        /// </summary>
        [Description("工作台1")]
        Workbench1,
        /// <summary>
        /// 销售工作台
        /// </summary>
        [Description("销售工作台")]
        SaleWorkbench,
        /// <summary>
        /// 商机客户工作台
        /// </summary>
        [Description("商机客户工作台")]
        ClientWorkbench,
        /// <summary>
        /// 合同工作台
        /// </summary>
        [Description("合同工作台")]
        ContractWorkbench,
        /// <summary>
        /// 客户工作台
        /// </summary>
        [Description("客户工作台")]
        DriverWorkbench,
        /// <summary>
        /// 资产车务工作台
        /// </summary>
        [Description("资产车务工作台")]
        TrafficWorkbench,
        /// <summary>
        /// 风控工作台
        /// </summary>
        [Description("风控工作台")]
        RiskControlWorkbench,
        /// <summary> 
        /// 待办事项 
        /// </summary>
        [Description("待办事项")]
        TodoItems,
        /// <summary>  
        /// 发起审批 
        /// </summary> 
        [Description("发起审批")]
        ApprovalApply,
        /// <summary> 
        /// 已办事项 
        /// </summary>
        [Description("已办事项")]
        DoneItems,
        /// <summary>
        /// 我的发起  
        /// </summary>
        [Description("我的发起")]
        ApprovalOfIApplied,
        /// <summary>
        /// 抄送给我 
        /// </summary>
        [Description("抄送给我")]
        ApprovalOfCopiedToMe,
        /// <summary> 
        /// 流程监控  
        /// </summary> 
        [Description("流程监控")]
        ProcessMonitor,
        /// <summary> 
        /// 全部流程  
        /// </summary>
        [Description("全部流程")]
        AllProcess,
        /// <summary>  
        /// 常用流程 
        /// </summary>
        [Description("常用流程")]
        CommonProcess,
        #endregion

        #region 资产管理
        /// <summary> 
        /// 资产管理
        /// </summary> 
        [Description("资产管理")]
        AssetManage,
        /// <summary> 
        /// 车辆管理  
        /// </summary> 
        [Description("车辆管理")]
        VehicleManage,
        /// <summary> 
        /// 车牌管理 
        /// </summary>
        [Description("车牌管理")]
        VehiclePlateManage,
        /// <summary> 
        /// 出入库单管理 
        /// </summary> 
        [Description("出入库单管理")]
        StockInOutOrderManage,
        /// <summary> 
        /// 资产调拨 
        /// </summary> 
        [Description("资产调拨")]
        AssetAllot,
        /// <summary> 
        /// 车辆处置  
        /// </summary> 
        [Description("车辆处置")]
        VehicleDisposal,
        /// <summary> 
        /// 车队管理  
        /// </summary> 
        [Description("车队管理")]
        VehicleFleetManage,
        /// <summary>  
        /// 发车计划  
        /// </summary> 
        [Description("发车计划")]
        DispatchPlan,
        /// <summary>
        /// 每日动态表 
        /// </summary> 
        [Description("每日动态表")]
        EverydayVehicleDynamic,
        /// <summary> 
        /// 事项统计  
        /// </summary>
        [Description("事项统计")]
        ItemStatistics,
        /// <summary> 
        /// 资产维护（事项统计）  
        /// </summary>
        [Description("资产维护")]
        AssetMaintenanceStatistics,
        /// <summary>  
        /// 资产故障 
        /// </summary> 
        [Description("资产故障")]
        AssetFailure,
        /// <summary>  
        /// 购车申请 
        /// </summary> 
        [Description("购车申请")]
        PurchaseCarApplication,
        #endregion

        #region 销售管理
        /// <summary> 
        /// 销售管理  
        /// </summary> 
        [Description("销售管理")]
        SalesManage,
        /// <summary>  
        /// 客户管理  
        /// </summary> 
        [Description("客户管理")]
        CustomerManage,
        /// <summary>
        /// 客户概况 
        /// </summary> 
        [Description("客户概况")]
        CustomerOverview,
        /// <summary>
        /// 客户账单管理 
        /// </summary> 
        [Description("客户账单管理")]
        CustomerBillManage,
        /// <summary> 
        /// 客户账单 
        /// </summary>
        [Description("客户账单")]
        CustomerBill,
        /// <summary> 
        /// 已生成账单  
        /// </summary>
        [Description("已生成账单")]
        GeneratedBill,
        /// <summary> 
        /// CRM 
        /// </summary> 
        [Description("CRM")]
        CRM,
        /// <summary> 
        /// 客户库  
        /// </summary>
        [Description("客户库")]
        CustomerLibrary,
        /// <summary> 
        /// 我的客户库 
        /// </summary>
        [Description("我的客户库")]
        MyCustomerLibrary,
        /// <summary> 
        /// 我的跟进 
        /// </summary> 
        [Description("我的跟进")]
        IFollowUp,
        /// <summary> 
        /// 待联客户 
        /// </summary>
        [Description("待联客户")]
        PendingContactCustomer,
        /// <summary> 
        /// 战败客户 
        /// </summary> 
        [Description("战败客户")]
        NoIntentionCustomer,
        /// <summary> 
        /// CRM黑名单 
        /// </summary>
        [Description("CRM黑名单")]
        CRMBlacklist,
        /// <summary> 
        /// 概况  
        /// </summary>
        [Description("概况")]
        CRMOverview,
        /// <summary> 
        /// 销售活动 
        /// </summary> 
        [Description("销售活动")]
        SalesActivity,
        /// <summary>  
        /// 目标设置 
        /// </summary> 
        [Description("目标设置")]
        TargetSetting,
        /// <summary> 
        /// 统计分析 
        /// </summary>
        [Description("统计分析")]
        StatisticAnalysis,
        #endregion

        #region 运营管理
        /// <summary> 
        /// 运营管理  
        /// </summary>
        [Description("运营管理")]
        OperationsManage,
        /// <summary>  
        /// 意向订单  
        /// </summary> 
        [Description("意向订单")]
        IntendedOrder,
        /// <summary> 
        /// 合同管理  
        /// </summary> 
        [Description("合同管理")]
        ContractManage,
        /// <summary> 
        /// 合同模板  
        /// </summary>
        [Description("合同模板")]
        ContractTemplate,
        /// <summary>  
        /// 验车管理 
        /// </summary> 
        [Description("验车管理")]
        InspectVehicleManage,
        /// <summary>
        /// 加油管理 
        /// </summary>
        [Description("加油管理")]
        OilManage,
        /// <summary> 
        /// 供应链管理 
        /// </summary>
        [Description("供应链管理")]
        SupplyChainManage,
        /// <summary> 
        /// 合同概况 
        /// </summary> 
        [Description("合同概况")]
        ContractOverview,
        /// <summary> 
        /// 培训管理  
        /// </summary>
        [Description("培训管理")]
        TrainingManage,
        /// <summary> 
        /// 培训概况 
        /// </summary> 
        [Description("培训概况")]
        TrainingOverview,
        /// <summary>  
        /// 培训计划 
        /// </summary> 
        [Description("培训计划")]
        TrainingPlan,
        /// <summary>  
        /// 培训记录  
        /// </summary> 
        [Description("培训记录")]
        TrainingRecord,
        /// <summary> 
        /// 知识素材库 
        /// </summary>
        [Description("知识素材库")]
        KnowledgeBase,
        /// <summary> 
        /// 业务事项统计 
        /// </summary>
        [Description("业务事项统计")]
        BusinessMattersStatistics,
        /// <summary> 
        /// 换车 
        /// </summary>
        [Description("换车")]
        ChangeVehicle,
        /// <summary> 
        /// 续约  
        /// </summary> 
        [Description("续约")]
        Renewal,
        /// <summary> 
        /// 解约 
        /// </summary>
        [Description("解约")]
        Termination,
        /// <summary> 
        /// 暂退 
        /// </summary>
        [Description("暂退")]
        TemporaryReturn,
        /// <summary> 
        /// 结算 
        /// </summary> 
        [Description("结算")]
        Clearing,
        /// <summary>  
        /// 合同变更 
        /// </summary>
        [Description("合同变更")]
        ContractChange,
        /// <summary> 
        /// 副驾备案 
        /// </summary> 
        [Description("副驾备案")]
        CopilotFiling,
        /// <summary> 
        /// 托管转让 
        /// </summary>
        [Description("托管转让")]
        CustodyTransfer,
        /// <summary>  
        /// 运营事项统计 
        /// </summary> 
        [Description("运营事项统计")]
        OperationEventStatistics,
        /// <summary> 
        /// 特殊申请  
        /// </summary> 
        [Description("特殊申请")]
        SpecialApplication,
        /// <summary> 
        /// 福利申请 
        /// </summary> 
        [Description("福利申请")]
        WelfareApplication,
        /// <summary>  
        /// 收车 
        /// </summary> 
        [Description("收车")]
        CollectVehicle,
        /// <summary>  
        /// 扣车 
        /// </summary> 
        [Description("扣车")]
        DetainVehicle,
        /// <summary> 
        /// 司机转介绍 
        /// </summary> 
        [Description("司机转介绍")]
        DriverIntroduction,
        #endregion

        #region 车务管理
        /// <summary> 
        /// 车务管理 
        /// </summary>
        [Description("车务管理")]
        VehicleBusinessMange,
        /// <summary> 
        /// 保险管理  
        /// </summary> 
        [Description("保险管理")]
        InsuranceManage,
        /// <summary> 
        /// 保险概况  
        /// </summary> 
        [Description("保险概况")]
        InsuranceOverview,
        /// <summary> 
        /// 保单管理 
        /// </summary> 
        [Description("保单管理")]
        InsurancePolicyManage,
        /// <summary> 
        /// 出险管理 
        /// </summary> 
        [Description("出险管理")]
        AccidentManage,
        /// <summary> 
        /// 维保管理  
        /// </summary> 
        [Description("维保管理")]
        MaintenanceInsuranceManage,
        /// <summary>
        /// 故障管理
        /// </summary>
        [Description("故障管理")]
        FaultManagement,
        /// <summary> 
        /// 保养管理 
        /// </summary> 
        [Description("保养管理")]
        MaintenanceManage,
        /// <summary>
        /// 保养登记
        /// </summary>
        [Description("保养登记")]
        MaintenanceRegistration,
        /// <summary>
        /// 保养提醒
        /// </summary>
        [Description("保养提醒")]
        MaintenanceReminder,
        /// <summary> 
        /// 维修管理 
        /// </summary> 
        [Description("维修管理")]
        RepairManage,
        /// <summary>
        /// 资产维护
        /// </summary>
        [Description("资产维护")]
        AssetMaintenance,
        /// <summary>
        /// 车况管理
        /// </summary>
        [Description("车况管理")]
        VehicleConditionManagement,
        /// <summary>
        /// 车损费用管理
        /// </summary>
        [Description("车损费用管理")]
        VehicleDamageCostManagement,
        /// <summary>
        /// 车损维护管理
        /// </summary>
        [Description("车损维护管理")]
        VehicleDamageMaintainManagement,
        /// <summary>
        /// 物损维护管理
        /// </summary>
        [Description("物损维护管理")]
        ObjectDamageMaintainManagement,
        /// <summary>
        /// 易损耗维护管理
        /// </summary>
        [Description("易损耗维护管理")]
        RapidWearMaintainManagement,
        /// <summary> 
        /// 违章管理  
        /// </summary> 
        [Description("违章管理")]
        ViolationManage,
        /// <summary>
        /// 违章记录
        /// </summary>
        [Description("违章记录")]
        ViolationRecords,
        /// <summary>
        /// 查询记录
        /// </summary>
        [Description("查询记录")]
        SearchViolationRecords,
        /// <summary> 
        /// 年检管理 
        /// </summary> 
        [Description("年检管理")]
        AnnualSurveyManage,
        /// <summary> 
        /// 车辆故障 
        /// </summary> 
        [Description("车辆故障")]
        VehicleFault,
        /// <summary>
        /// 车辆里程管理
        /// </summary>
        [Description("车辆里程管理")]
        VehicleMileageManage,
        #endregion

        #region 风控管理
        /// <summary>  
        /// 风控管理  
        /// </summary>
        [Description("风控管理")]
        RiskControlModule,
        /// <summary> 
        /// 风控概况  
        /// </summary> 
        [Description("风控概况")]
        RiskControlOverview,
        /// <summary> 
        /// 风控管理  
        /// </summary> 
        [Description("风控管理")]
        RiskControlManage,
        /// <summary> 
        /// 风控预警名单 
        /// </summary> 
        [Description("风控预警名单")]
        RiskControlWarmingList,
        /// <summary> 
        /// 黑名单 
        /// </summary>
        [Description("黑名单")]
        RiskControlBlacklist,
        /// <summary>
        /// 出城备案  
        /// </summary> 
        [Description("出城备案")]
        OutOfTownFiling,
        /// <summary> 
        /// 驾驶员入职审核  
        /// </summary>
        [Description("驾驶员入职审核")]
        DriverEntryAudit,
        /// <summary>
        /// 抓车管理  
        /// </summary> 
        [Description("抓车管理")]
        CatchVehicleManage,
        /// <summary> 
        /// 终端管理
        /// </summary> 
        [Description("终端管理")]
        OBD,
        /// <summary> 
        /// 车辆监控 
        /// </summary>
        [Description("车辆监控")]
        VehicleMonitor,
        /// <summary> 
        /// 征信查询  
        /// </summary> 
        [Description("征信查询")]
        CreditSearch,
        #endregion

        #region 财务管理
        /// <summary> 
        /// 财务管理 
        /// </summary>
        [Description("财务管理")]
        FinanceManage,
        /// <summary> 
        /// 应收账款 
        /// </summary> 
        [Description("应收账款")]
        Receivables,
        /// <summary> 
        /// 应付账款 
        /// </summary> 
        [Description("应付账款")]
        Payables,
        /// <summary> 
        /// 收支流水 
        /// </summary> 
        [Description("收支流水")]
        FinanceStatements,
        /// <summary> 
        /// 收支统计 
        /// </summary> 
        [Description("收支统计")]
        FinanceStatistics,
        /// <summary>  
        /// 单车成本核算 
        /// </summary> 
        [Description("单车成本核算")]
        VehicleCostAccounting,
        /// <summary>  
        /// 车辆利润测算 
        /// </summary>
        [Description("车辆利润测算")]
        VehicleProfitMeasurement,
        /// <summary>  
        /// 汇总 
        /// </summary>
        [Description("汇总")]
        VehicleProfitMeasurementSummary,
        /// <summary> 
        /// 明细  
        /// </summary>
        [Description("明细")]
        VehicleProfitMeasurementDetail,
        #endregion

        #region 报表统计
        /// <summary> 
        /// 报表统计  
        /// </summary>
        [Description("报表统计")]
        ReportStatistics,
        /// <summary> 
        /// 公司经营报告 
        /// </summary> 
        [Description("公司经营报告")]
        CompanyManageReport,
        /// <summary> 
        /// 销售报表 
        /// </summary> 
        [Description("销售报表")]
        SalesReport,
        /// <summary> 
        /// 客户签约报表 
        /// </summary> 
        [Description("客户签约报表")]
        CustomerSignedReport,
        /// <summary> 
        /// 周边产品销售报表 
        /// </summary> 
        [Description("周边产品销售报表")]
        CartoonProductSaleReport,
        /// <summary>
        /// 营销费用报表 
        /// </summary>
        [Description("营销费用报表")]
        MarketingFeeReport,
        /// <summary> 
        /// 运营报表 
        /// </summary>
        [Description("运营报表")]
        OperationReport,
        /// <summary>
        /// 资产报表  
        /// </summary>
        [Description("资产报表")]
        AssetReport,
        /// <summary> 
        /// 风控报表 
        /// </summary>
        [Description("风控报表")]
        RiskControlReport,
        /// <summary> 
        /// 财务报表 
        /// </summary> 
        [Description("财务报表")]
        FinanceReport,
        #endregion

        #region 商品管理
        /// <summary> 
        /// 商品管理 
        /// </summary>
        [Description("商品管理")]
        CommodityManage,
        /// <summary>  
        /// 商品概况  
        /// </summary> 
        [Description("商品概况")]
        CommodityOverview,
        /// <summary>  
        /// 商品管理 
        /// </summary>
        [Description("商品管理")]
        Commodity,
        /// <summary> 
        /// 采购订单 
        /// </summary>
        [Description("采购订单")]
        PurchaseOrder,
        /// <summary>  
        /// 商品入库 
        /// </summary> 
        [Description("商品入库")]
        CommodityStockIn,
        /// <summary>  
        /// 销售订单 
        /// </summary>
        [Description("销售订单")]
        SalesOrder,
        /// <summary> 
        /// 商品消耗记录
        /// </summary> 
        [Description("商品消耗记录")]
        CommodityConsumptionRecord,
        #endregion

        #region 系统设置
        /// <summary> 
        /// 系统设置 
        /// </summary>
        [Description("系统设置")]
        SystemSettings,
        /// <summary> 
        /// 基础数据 
        /// </summary> 
        [Description("基础数据")]
        BasicData,
        /// <summary>  
        /// 产品类型 
        /// </summary>
        [Description("产品类型")]
        ProductType,
        /// <summary>
        /// 产品管理  
        /// </summary> 
        [Description("产品管理")]
        ProductManage,
        /// <summary> 
        /// 审批流程管理 
        /// </summary> 
        [Description("审批流程管理")]
        ApprovalWorkflowManage,
        /// <summary>  
        /// 流程分类 
        /// </summary> 
        [Description("流程分类")]
        ProcessCategory,
        /// <summary> 
        /// 流程管理  
        /// </summary> 
        [Description("流程管理")]
        ProcessManage,
        /// <summary>  
        /// 字典管理  
        /// </summary> 
        [Description("字典管理")]
        DictionaryManage,
        /// <summary> 
        /// 车系管理 
        /// </summary> 
        [Description("车系管理")]
        VehicleLineManage,
        /// <summary>  
        /// 车型管理
        /// </summary>
        [Description("车型管理")]
        VehicleModelManage,
        /// <summary>
        /// 商品管理
        /// </summary>
        [Description("商品管理")]
        SystemCommodityManagement,
        /// <summary>
        /// 商品类型
        /// </summary>
        [Description("商品类型")]
        SystemCommodityCategory,
        /// <summary>
        /// 商品列表
        /// </summary>
        [Description("商品列表")]
        SystemCommodityList,
        /// <summary>
        /// 仓库管理
        /// </summary>
        [Description("仓库管理")]
        WarehouseManagement,
        /// <summary> 
        /// 车损规则管理 
        /// </summary>
        [Description("车损规则管理")]
        CarDamageRuleManage,
        /// <summary> 
        /// 菜单管理 
        /// </summary>
        [Description("菜单管理")]
        MenuManage,
        /// <summary> 
        /// 供应商管理 
        /// </summary>
        [Description("供应商管理")]
        SupplierManage,
        /// <summary>  
        /// 维修厂管理 
        /// </summary> 
        [Description("维修厂管理")]
        RepairShopManage,
        /// <summary> 
        /// 机构管理 
        /// </summary> 
        [Description("机构管理")]
        OrganizationManage,
        /// <summary>
        /// 部门管理 
        /// </summary>
        [Description("部门管理")]
        DepartmentManage,
        /// <summary>
        /// 角色管理 
        /// </summary>
        [Description("角色管理")]
        RoleManage,
        /// <summary> 
        /// 用户管理 
        /// </summary>
        [Description("用户管理")]
        UserManage,
        /// <summary> 
        /// 参数管理 
        /// </summary> 
        [Description("参数管理")]
        ParameterManage,
        /// <summary> 
        /// 公告管理  
        /// </summary> 
        [Description("公告管理")]
        NoticeManage,
        /// <summary> 
        /// 日志管理 
        /// </summary>
        [Description("日志管理")]
        LogManage,
        /// <summary> 
        /// APP版本管理  
        /// </summary> 
        [Description("APP版本管理")]
        AppVersionManage,
        #endregion
    }

    /// <summary>
    /// 超级管理员独有功能模块
    /// </summary>
    public static class SuperAdminOnlyModule
    {
        public static ModuleCodeEnum[] Modules
        {
            get
            {
                return new ModuleCodeEnum[]
                {
                    ModuleCodeEnum.MenuManage,
                };
            }
        }
        public static string[] ModulesStrArr
        {
            get
            {
                return Array.ConvertAll(Modules, a => a.ToString());
            }
        }
    }
}